const express = require('express');
const router = express.Router();
const taskScheduler = require('../utils/scheduler');
const { authenticateToken } = require('../untils/untils');

// 获取所有定时任务状态
router.get('/status', authenticateToken, (req, res) => {
    try {
        const status = taskScheduler.getTasksStatus();
        res.json({
            success: true,
            message: '获取定时任务状态成功',
            data: {
                isRunning: taskScheduler.isRunning,
                tasks: status
            }
        });
    } catch (error) {
        console.error('获取定时任务状态失败:', error);
        res.status(500).json({
            success: false,
            message: '获取定时任务状态失败',
            error: error.message
        });
    }
});

// 启动定时任务系统
router.post('/start', authenticateToken, (req, res) => {
    try {
        taskScheduler.start();
        res.json({
            success: true,
            message: '定时任务系统启动成功'
        });
    } catch (error) {
        console.error('启动定时任务系统失败:', error);
        res.status(500).json({
            success: false,
            message: '启动定时任务系统失败',
            error: error.message
        });
    }
});

// 停止定时任务系统
router.post('/stop', authenticateToken, (req, res) => {
    try {
        taskScheduler.stop();
        res.json({
            success: true,
            message: '定时任务系统停止成功'
        });
    } catch (error) {
        console.error('停止定时任务系统失败:', error);
        res.status(500).json({
            success: false,
            message: '停止定时任务系统失败',
            error: error.message
        });
    }
});

// 手动执行指定任务
router.post('/execute/:taskName', authenticateToken, async (req, res) => {
    try {
        const { taskName } = req.params;
        await taskScheduler.executeTask(taskName);
        res.json({
            success: true,
            message: `任务 ${taskName} 执行成功`
        });
    } catch (error) {
        console.error('手动执行任务失败:', error);
        res.status(500).json({
            success: false,
            message: '手动执行任务失败',
            error: error.message
        });
    }
});

// 获取任务执行日志（这里可以扩展为从数据库获取）
router.get('/logs', authenticateToken, (req, res) => {
    try {
        // 这里可以从数据库获取任务执行日志
        res.json({
            success: true,
            message: '获取任务日志成功',
            data: {
                logs: [
                    {
                        taskName: 'daily-cleanup',
                        executionTime: new Date().toISOString(),
                        status: 'success',
                        message: '每日清理任务执行成功'
                    }
                ]
            }
        });
    } catch (error) {
        console.error('获取任务日志失败:', error);
        res.status(500).json({
            success: false,
            message: '获取任务日志失败',
            error: error.message
        });
    }
});

module.exports = router; 

